package com.lovo.sys.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lovo.sys.bean.UserOrderBean;

import java.time.LocalDate;
import java.util.List;

public interface IUserOrderService {
    /**
     * 查询所有的订单
     * @param pageNum 页码
     * @return 订单分页对象
     */
    public IPage<UserOrderBean> findByItem(Integer pageNum);
    /**
     * 查询所有未发货的订单
     * @param pageNum 页码
     * @return 订单分页对象
     */
    public IPage<UserOrderBean> findAll(Integer pageNum);


    /**
     * 根据订单id查询出订单对象
     * @param idNum 订单id
     * @return 订单对象
     */

    public UserOrderBean findByUserOrderId(String  idNum);

    /**
     * 根据订单id修改是否删除状态
     * @param UserOrderId
     */
    public void deleteByUserOrderId(long UserOrderId);

    /**
     * 添加订单
     * @param userOrderBean 订单对象
     */
    public void addUserOrder(UserOrderBean userOrderBean);
    /**
     * 根据传入的不同状态码,修改订单状态
     * @param num 状态码
     */
    public void updateUserOrder(Integer userOrderId, Integer num);

    /**
     * 退货（逻辑删除订单，根据商品名在商品库存里查找出对应商品对象以及增加数量）
     * @param userOrderId
     * @param goodsNum
     * @param goodsName
     */
    public void SalesReturn(Integer userOrderId,Integer num,Integer goodsNum,String goodsName);

    /**
     * 查询所有的类型
     * @return
     */
    public List<String> findAllType();



    public IPage<UserOrderBean> findByDateAndType(String Date, String type, Integer pageNum, Integer status);

    /**
     * 通过订单编号修改状态
     * @param orderNum 订单编号
     * @param num 状态码
     * @return
     */
    public void updateStatus(String orderNum,Integer num, LocalDate payDate);

}
